今天要介紹的咒語是
寐偲,賽!
只要唸出這個咒語就不需要動手簽名了,咒語會自動變出一個簽名
想像一下每次刷卡刷很多錢都要簽名很麻煩對吧!
店員要拿單子給你簽,這時你非常有氣勢地喊出:
「寐偲,賽!」
可以想像店員錯愕的表情嗎?然後你還是得自己動手簽名。
這邊的sign指的是符號,使用Math.sign()將會得到一個數字型別且保留他的「符號」。
舉例來說,10所代表的是+10,那他就會保留符號+然後回傳1來代表這個數的符號。
直接來看看怎麼使用吧!
Math.sign(x)
放入一個數字型別
他將回傳一個代表傳入之引數的符號:
x是正數,回傳1。x是負數,回傳-1。x是0,回傳0。x是-0,回傳-0。NaN。看起來就是用來判斷數字是正數、負數或零,來看看規範吧!

喔!開頭就說這個函式回傳x的符號,指出x是正數、負數或是零,傳入後執行以下操作:
n,值一樣為ToNumber(x)的結果。n是NaN、浮點數+0跟浮點數-0其中一個,那就回傳n本身。n小於浮點數-0,回傳浮點數-1。1。結束了?啊我還不知道他可以用來幹嘛呢QQ
看完這個方法後想辨別正還是負我的腦中只有一張圖片
圖片來源:用Mac內建工具畫的,如果太簡陋請多多包涵。
物理的運動圖形((???
簡單幫大家回顧一下這個會出現在國中物理的圖吧!
在t1這個時間點速度是「正」的,t2速度變成0,到了t3速度變成「負」的,最後t4時速度又回到0了。
那速度值的「正」、「負」各代表什麼呢?就是運動的方向~如果我們定義往右走是正的,那麼往左走就會是負的,那0就會代表他是靜止不動的!
解釋完我們就簡單寫個小小的練習來判斷運動狀態吧!
function getMotionState(velocity){
const sign = Math.sign(velocity);
switch (Math.sign(velocity)) {
case 1: return "向右";
case -1: return "向左";
case 0: return "靜止";
}
}
console.log(getMotionState(-10)); //向左
寫完覺得這個例子滿瞎的...明明寫if/else就可以解決哈哈,針對效能好像也幾乎沒有差別。
所以如果有個數我們很想知道他的正負號該怎麼做呢?
Math.sign()還有另一個特別之處就是能夠分辨0跟-0,如果今天得到的數非常小而且是負數,例如1 / -Infinity,那Math.sign(1 / -Infinity)將會回傳-0。
也許這會是一個方向!但我還沒有想法,大家可以的話幫忙想想看有沒有適合的使用時機,歡迎來訊討論!
什麼鬼,令人挫折的一天,明天看看會不會好轉。
參考資料: